/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.Wires.impl;

import EA_Model.IEC61970.Core.impl.PowerSystemResourceImpl;

import EA_Model.IEC61970.Domain.PerCent;
import EA_Model.IEC61970.Domain.Seconds;
import EA_Model.IEC61970.Domain.Voltage;

import EA_Model.IEC61970.Wires.TapChanger;
import EA_Model.IEC61970.Wires.WiresPackage;

import org.eclipse.emf.common.notify.Notification;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;

import org.eclipse.emf.ecore.impl.ENotificationImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Tap Changer</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link EA_Model.IEC61970.Wires.impl.TapChangerImpl#getHighStep <em>High Step</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.impl.TapChangerImpl#getInitialDelay <em>Initial Delay</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.impl.TapChangerImpl#getLowStep <em>Low Step</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.impl.TapChangerImpl#getLtcFlag <em>Ltc Flag</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.impl.TapChangerImpl#getNeutralStep <em>Neutral Step</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.impl.TapChangerImpl#getNeutralU <em>Neutral U</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.impl.TapChangerImpl#getNormalStep <em>Normal Step</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.impl.TapChangerImpl#getRegulationStatus <em>Regulation Status</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.impl.TapChangerImpl#getStepVoltageIncrement <em>Step Voltage Increment</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.impl.TapChangerImpl#getSubsequentDelay <em>Subsequent Delay</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class TapChangerImpl extends PowerSystemResourceImpl implements TapChanger {
	/**
	 * The cached value of the '{@link #getHighStep() <em>High Step</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getHighStep()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Integer highStep;

	/**
	 * The cached value of the '{@link #getInitialDelay() <em>Initial Delay</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getInitialDelay()
	 * @generated
	 * @ordered
	 */
	protected Seconds initialDelay;

	/**
	 * The cached value of the '{@link #getLowStep() <em>Low Step</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLowStep()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Integer lowStep;

	/**
	 * The cached value of the '{@link #getLtcFlag() <em>Ltc Flag</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLtcFlag()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Boolean ltcFlag;

	/**
	 * The cached value of the '{@link #getNeutralStep() <em>Neutral Step</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNeutralStep()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Integer neutralStep;

	/**
	 * The cached value of the '{@link #getNeutralU() <em>Neutral U</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNeutralU()
	 * @generated
	 * @ordered
	 */
	protected Voltage neutralU;

	/**
	 * The cached value of the '{@link #getNormalStep() <em>Normal Step</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNormalStep()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Integer normalStep;

	/**
	 * The cached value of the '{@link #getRegulationStatus() <em>Regulation Status</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getRegulationStatus()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Boolean regulationStatus;

	/**
	 * The cached value of the '{@link #getStepVoltageIncrement() <em>Step Voltage Increment</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getStepVoltageIncrement()
	 * @generated
	 * @ordered
	 */
	protected PerCent stepVoltageIncrement;

	/**
	 * The cached value of the '{@link #getSubsequentDelay() <em>Subsequent Delay</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSubsequentDelay()
	 * @generated
	 * @ordered
	 */
	protected Seconds subsequentDelay;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TapChangerImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return WiresPackage.Literals.TAP_CHANGER;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Integer getHighStep() {
		if (highStep != null && highStep.eIsProxy()) {
			InternalEObject oldHighStep = (InternalEObject)highStep;
			highStep = (EA_Model.IEC61970.Domain.Integer)eResolveProxy(oldHighStep);
			if (highStep != oldHighStep) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, WiresPackage.TAP_CHANGER__HIGH_STEP, oldHighStep, highStep));
			}
		}
		return highStep;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Integer basicGetHighStep() {
		return highStep;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setHighStep(EA_Model.IEC61970.Domain.Integer newHighStep) {
		EA_Model.IEC61970.Domain.Integer oldHighStep = highStep;
		highStep = newHighStep;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, WiresPackage.TAP_CHANGER__HIGH_STEP, oldHighStep, highStep));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Seconds getInitialDelay() {
		if (initialDelay != null && initialDelay.eIsProxy()) {
			InternalEObject oldInitialDelay = (InternalEObject)initialDelay;
			initialDelay = (Seconds)eResolveProxy(oldInitialDelay);
			if (initialDelay != oldInitialDelay) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, WiresPackage.TAP_CHANGER__INITIAL_DELAY, oldInitialDelay, initialDelay));
			}
		}
		return initialDelay;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Seconds basicGetInitialDelay() {
		return initialDelay;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setInitialDelay(Seconds newInitialDelay) {
		Seconds oldInitialDelay = initialDelay;
		initialDelay = newInitialDelay;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, WiresPackage.TAP_CHANGER__INITIAL_DELAY, oldInitialDelay, initialDelay));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Integer getLowStep() {
		if (lowStep != null && lowStep.eIsProxy()) {
			InternalEObject oldLowStep = (InternalEObject)lowStep;
			lowStep = (EA_Model.IEC61970.Domain.Integer)eResolveProxy(oldLowStep);
			if (lowStep != oldLowStep) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, WiresPackage.TAP_CHANGER__LOW_STEP, oldLowStep, lowStep));
			}
		}
		return lowStep;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Integer basicGetLowStep() {
		return lowStep;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setLowStep(EA_Model.IEC61970.Domain.Integer newLowStep) {
		EA_Model.IEC61970.Domain.Integer oldLowStep = lowStep;
		lowStep = newLowStep;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, WiresPackage.TAP_CHANGER__LOW_STEP, oldLowStep, lowStep));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Boolean getLtcFlag() {
		if (ltcFlag != null && ltcFlag.eIsProxy()) {
			InternalEObject oldLtcFlag = (InternalEObject)ltcFlag;
			ltcFlag = (EA_Model.IEC61970.Domain.Boolean)eResolveProxy(oldLtcFlag);
			if (ltcFlag != oldLtcFlag) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, WiresPackage.TAP_CHANGER__LTC_FLAG, oldLtcFlag, ltcFlag));
			}
		}
		return ltcFlag;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Boolean basicGetLtcFlag() {
		return ltcFlag;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setLtcFlag(EA_Model.IEC61970.Domain.Boolean newLtcFlag) {
		EA_Model.IEC61970.Domain.Boolean oldLtcFlag = ltcFlag;
		ltcFlag = newLtcFlag;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, WiresPackage.TAP_CHANGER__LTC_FLAG, oldLtcFlag, ltcFlag));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Integer getNeutralStep() {
		if (neutralStep != null && neutralStep.eIsProxy()) {
			InternalEObject oldNeutralStep = (InternalEObject)neutralStep;
			neutralStep = (EA_Model.IEC61970.Domain.Integer)eResolveProxy(oldNeutralStep);
			if (neutralStep != oldNeutralStep) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, WiresPackage.TAP_CHANGER__NEUTRAL_STEP, oldNeutralStep, neutralStep));
			}
		}
		return neutralStep;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Integer basicGetNeutralStep() {
		return neutralStep;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNeutralStep(EA_Model.IEC61970.Domain.Integer newNeutralStep) {
		EA_Model.IEC61970.Domain.Integer oldNeutralStep = neutralStep;
		neutralStep = newNeutralStep;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, WiresPackage.TAP_CHANGER__NEUTRAL_STEP, oldNeutralStep, neutralStep));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Voltage getNeutralU() {
		if (neutralU != null && neutralU.eIsProxy()) {
			InternalEObject oldNeutralU = (InternalEObject)neutralU;
			neutralU = (Voltage)eResolveProxy(oldNeutralU);
			if (neutralU != oldNeutralU) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, WiresPackage.TAP_CHANGER__NEUTRAL_U, oldNeutralU, neutralU));
			}
		}
		return neutralU;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Voltage basicGetNeutralU() {
		return neutralU;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNeutralU(Voltage newNeutralU) {
		Voltage oldNeutralU = neutralU;
		neutralU = newNeutralU;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, WiresPackage.TAP_CHANGER__NEUTRAL_U, oldNeutralU, neutralU));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Integer getNormalStep() {
		if (normalStep != null && normalStep.eIsProxy()) {
			InternalEObject oldNormalStep = (InternalEObject)normalStep;
			normalStep = (EA_Model.IEC61970.Domain.Integer)eResolveProxy(oldNormalStep);
			if (normalStep != oldNormalStep) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, WiresPackage.TAP_CHANGER__NORMAL_STEP, oldNormalStep, normalStep));
			}
		}
		return normalStep;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Integer basicGetNormalStep() {
		return normalStep;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNormalStep(EA_Model.IEC61970.Domain.Integer newNormalStep) {
		EA_Model.IEC61970.Domain.Integer oldNormalStep = normalStep;
		normalStep = newNormalStep;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, WiresPackage.TAP_CHANGER__NORMAL_STEP, oldNormalStep, normalStep));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Boolean getRegulationStatus() {
		if (regulationStatus != null && regulationStatus.eIsProxy()) {
			InternalEObject oldRegulationStatus = (InternalEObject)regulationStatus;
			regulationStatus = (EA_Model.IEC61970.Domain.Boolean)eResolveProxy(oldRegulationStatus);
			if (regulationStatus != oldRegulationStatus) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, WiresPackage.TAP_CHANGER__REGULATION_STATUS, oldRegulationStatus, regulationStatus));
			}
		}
		return regulationStatus;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Boolean basicGetRegulationStatus() {
		return regulationStatus;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setRegulationStatus(EA_Model.IEC61970.Domain.Boolean newRegulationStatus) {
		EA_Model.IEC61970.Domain.Boolean oldRegulationStatus = regulationStatus;
		regulationStatus = newRegulationStatus;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, WiresPackage.TAP_CHANGER__REGULATION_STATUS, oldRegulationStatus, regulationStatus));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PerCent getStepVoltageIncrement() {
		if (stepVoltageIncrement != null && stepVoltageIncrement.eIsProxy()) {
			InternalEObject oldStepVoltageIncrement = (InternalEObject)stepVoltageIncrement;
			stepVoltageIncrement = (PerCent)eResolveProxy(oldStepVoltageIncrement);
			if (stepVoltageIncrement != oldStepVoltageIncrement) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, WiresPackage.TAP_CHANGER__STEP_VOLTAGE_INCREMENT, oldStepVoltageIncrement, stepVoltageIncrement));
			}
		}
		return stepVoltageIncrement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PerCent basicGetStepVoltageIncrement() {
		return stepVoltageIncrement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setStepVoltageIncrement(PerCent newStepVoltageIncrement) {
		PerCent oldStepVoltageIncrement = stepVoltageIncrement;
		stepVoltageIncrement = newStepVoltageIncrement;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, WiresPackage.TAP_CHANGER__STEP_VOLTAGE_INCREMENT, oldStepVoltageIncrement, stepVoltageIncrement));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Seconds getSubsequentDelay() {
		if (subsequentDelay != null && subsequentDelay.eIsProxy()) {
			InternalEObject oldSubsequentDelay = (InternalEObject)subsequentDelay;
			subsequentDelay = (Seconds)eResolveProxy(oldSubsequentDelay);
			if (subsequentDelay != oldSubsequentDelay) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, WiresPackage.TAP_CHANGER__SUBSEQUENT_DELAY, oldSubsequentDelay, subsequentDelay));
			}
		}
		return subsequentDelay;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Seconds basicGetSubsequentDelay() {
		return subsequentDelay;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSubsequentDelay(Seconds newSubsequentDelay) {
		Seconds oldSubsequentDelay = subsequentDelay;
		subsequentDelay = newSubsequentDelay;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, WiresPackage.TAP_CHANGER__SUBSEQUENT_DELAY, oldSubsequentDelay, subsequentDelay));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case WiresPackage.TAP_CHANGER__HIGH_STEP:
				if (resolve) return getHighStep();
				return basicGetHighStep();
			case WiresPackage.TAP_CHANGER__INITIAL_DELAY:
				if (resolve) return getInitialDelay();
				return basicGetInitialDelay();
			case WiresPackage.TAP_CHANGER__LOW_STEP:
				if (resolve) return getLowStep();
				return basicGetLowStep();
			case WiresPackage.TAP_CHANGER__LTC_FLAG:
				if (resolve) return getLtcFlag();
				return basicGetLtcFlag();
			case WiresPackage.TAP_CHANGER__NEUTRAL_STEP:
				if (resolve) return getNeutralStep();
				return basicGetNeutralStep();
			case WiresPackage.TAP_CHANGER__NEUTRAL_U:
				if (resolve) return getNeutralU();
				return basicGetNeutralU();
			case WiresPackage.TAP_CHANGER__NORMAL_STEP:
				if (resolve) return getNormalStep();
				return basicGetNormalStep();
			case WiresPackage.TAP_CHANGER__REGULATION_STATUS:
				if (resolve) return getRegulationStatus();
				return basicGetRegulationStatus();
			case WiresPackage.TAP_CHANGER__STEP_VOLTAGE_INCREMENT:
				if (resolve) return getStepVoltageIncrement();
				return basicGetStepVoltageIncrement();
			case WiresPackage.TAP_CHANGER__SUBSEQUENT_DELAY:
				if (resolve) return getSubsequentDelay();
				return basicGetSubsequentDelay();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case WiresPackage.TAP_CHANGER__HIGH_STEP:
				setHighStep((EA_Model.IEC61970.Domain.Integer)newValue);
				return;
			case WiresPackage.TAP_CHANGER__INITIAL_DELAY:
				setInitialDelay((Seconds)newValue);
				return;
			case WiresPackage.TAP_CHANGER__LOW_STEP:
				setLowStep((EA_Model.IEC61970.Domain.Integer)newValue);
				return;
			case WiresPackage.TAP_CHANGER__LTC_FLAG:
				setLtcFlag((EA_Model.IEC61970.Domain.Boolean)newValue);
				return;
			case WiresPackage.TAP_CHANGER__NEUTRAL_STEP:
				setNeutralStep((EA_Model.IEC61970.Domain.Integer)newValue);
				return;
			case WiresPackage.TAP_CHANGER__NEUTRAL_U:
				setNeutralU((Voltage)newValue);
				return;
			case WiresPackage.TAP_CHANGER__NORMAL_STEP:
				setNormalStep((EA_Model.IEC61970.Domain.Integer)newValue);
				return;
			case WiresPackage.TAP_CHANGER__REGULATION_STATUS:
				setRegulationStatus((EA_Model.IEC61970.Domain.Boolean)newValue);
				return;
			case WiresPackage.TAP_CHANGER__STEP_VOLTAGE_INCREMENT:
				setStepVoltageIncrement((PerCent)newValue);
				return;
			case WiresPackage.TAP_CHANGER__SUBSEQUENT_DELAY:
				setSubsequentDelay((Seconds)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case WiresPackage.TAP_CHANGER__HIGH_STEP:
				setHighStep((EA_Model.IEC61970.Domain.Integer)null);
				return;
			case WiresPackage.TAP_CHANGER__INITIAL_DELAY:
				setInitialDelay((Seconds)null);
				return;
			case WiresPackage.TAP_CHANGER__LOW_STEP:
				setLowStep((EA_Model.IEC61970.Domain.Integer)null);
				return;
			case WiresPackage.TAP_CHANGER__LTC_FLAG:
				setLtcFlag((EA_Model.IEC61970.Domain.Boolean)null);
				return;
			case WiresPackage.TAP_CHANGER__NEUTRAL_STEP:
				setNeutralStep((EA_Model.IEC61970.Domain.Integer)null);
				return;
			case WiresPackage.TAP_CHANGER__NEUTRAL_U:
				setNeutralU((Voltage)null);
				return;
			case WiresPackage.TAP_CHANGER__NORMAL_STEP:
				setNormalStep((EA_Model.IEC61970.Domain.Integer)null);
				return;
			case WiresPackage.TAP_CHANGER__REGULATION_STATUS:
				setRegulationStatus((EA_Model.IEC61970.Domain.Boolean)null);
				return;
			case WiresPackage.TAP_CHANGER__STEP_VOLTAGE_INCREMENT:
				setStepVoltageIncrement((PerCent)null);
				return;
			case WiresPackage.TAP_CHANGER__SUBSEQUENT_DELAY:
				setSubsequentDelay((Seconds)null);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case WiresPackage.TAP_CHANGER__HIGH_STEP:
				return highStep != null;
			case WiresPackage.TAP_CHANGER__INITIAL_DELAY:
				return initialDelay != null;
			case WiresPackage.TAP_CHANGER__LOW_STEP:
				return lowStep != null;
			case WiresPackage.TAP_CHANGER__LTC_FLAG:
				return ltcFlag != null;
			case WiresPackage.TAP_CHANGER__NEUTRAL_STEP:
				return neutralStep != null;
			case WiresPackage.TAP_CHANGER__NEUTRAL_U:
				return neutralU != null;
			case WiresPackage.TAP_CHANGER__NORMAL_STEP:
				return normalStep != null;
			case WiresPackage.TAP_CHANGER__REGULATION_STATUS:
				return regulationStatus != null;
			case WiresPackage.TAP_CHANGER__STEP_VOLTAGE_INCREMENT:
				return stepVoltageIncrement != null;
			case WiresPackage.TAP_CHANGER__SUBSEQUENT_DELAY:
				return subsequentDelay != null;
		}
		return super.eIsSet(featureID);
	}

} //TapChangerImpl
